perm filename IOELEV.CNV[KL,SYS] blob
sn#209173 filedate 1976-04-03 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 Conventions for relations between KLDCP and IOELEV
C00005 ENDMK
Cā;
Conventions for relations between KLDCP and IOELEV
Core locations -
3000 KLDCP does JSR PC, here when it has nothing to do
and 10 is running. IOELEV should INIT if it hasn't
already, then go into its main loop. It should CLC, RTS PC
if the 10 goes down; KLDCP will print appropriate message.
To go into temporary KLDCP command mode, SEC, RTS PC.
If microcode hangs, PMSG <...>, JMP 100004 (CTRLC).
3004, 3006 - .RAD50 /IOELEV/
3010, 3012 - random crufty version numbers (not actually used)
14, 16 BPT vector, I guess it's OK for 11 ddt to use these.
.. interrupt vectors for various devices are initially set
up by KLDCP to point to error routine; IOELEV can load
over these.
0-400 vectors
3000-? IOELEV (what is 400-3000 used for?)
?-100000 11 DDT
100000-? KLDCP
?-160000 stack
KLDCP will supply IOELEV with a stack; 11 DDT will have to be modified
to believe it.
Even while the IOELEV main loop is not running, interrupts will be
turned on and IOELEV P.I. level can run. Various things like "MR" will
do a pdp11 "RESET" instruction and flush this. This allows the right thing
to happen if the 10 halts, you go to KLDCP, in KLDCP you type DDT, and
now you're back in IOELEV.
Consequently IOELEV has to handle the flavor of teletype that DDT & SALV use.
It's best to do an "RI" before running, e.g., DEC diagnostics.
IOELEV isn't allowed to turn on interrupts for any devices that KLDCP
also uses; mainly, 60-cycle clock and DTE20. These have to be handled
entirely in the main program and not touched at all at P.I. level (since
IOELEV's P.I. level runs concurrently with KLDCP.)
IOELEV main program level can (and will) use KLDCP's EMT's to hack the DTE20.